//------------------------------------------------------------------------------
// <auto-generated>
//     This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
//     version 1.7.0
//     from Assets/Sources/Control/PlayerInputActions.inputactions
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;

public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
{
    public InputActionAsset asset { get; }
    public @PlayerInputActions()
    {
        asset = InputActionAsset.FromJson(@"{
    ""name"": ""PlayerInputActions"",
    ""maps"": [
        {
            ""name"": ""Levels"",
            ""id"": ""10f66244-4729-4ac6-8e16-b3960826aedd"",
            ""actions"": [
                {
                    ""name"": ""Jump"",
                    ""type"": ""Button"",
                    ""id"": ""0a5bf2e6-bcf8-4036-8496-069f16a6f529"",
                    ""expectedControlType"": ""Button"",
                    ""processors"": """",
                    ""interactions"": ""Hold"",
                    ""initialStateCheck"": false
                },
                {
                    ""name"": ""Move"",
                    ""type"": ""Button"",
                    ""id"": ""3af3c60e-6be7-43e2-90dc-e703de785e69"",
                    ""expectedControlType"": ""Button"",
                    ""processors"": """",
                    ""interactions"": ""Press(behavior=2)"",
                    ""initialStateCheck"": false
                },
                {
                    ""name"": ""Vampirism"",
                    ""type"": ""Button"",
                    ""id"": ""243ad109-ba5c-4307-aff2-6d142a9b86dc"",
                    ""expectedControlType"": ""Button"",
                    ""processors"": """",
                    ""interactions"": ""Press"",
                    ""initialStateCheck"": false
                }
            ],
            ""bindings"": [
                {
                    ""name"": """",
                    ""id"": ""2f52fa51-debd-440b-9c92-8244dfa605f5"",
                    ""path"": ""<Keyboard>/space"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""Jump"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": false
                },
                {
                    ""name"": ""1D Axis"",
                    ""id"": ""29ad86c6-655a-4365-85e4-3263972f0256"",
                    ""path"": ""1DAxis"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""Move"",
                    ""isComposite"": true,
                    ""isPartOfComposite"": false
                },
                {
                    ""name"": ""negative"",
                    ""id"": ""f049824e-a347-440a-923b-f8f8f96d17c3"",
                    ""path"": ""<Keyboard>/a"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""Move"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": true
                },
                {
                    ""name"": ""positive"",
                    ""id"": ""9a2a3bde-6966-45d9-b14a-d0842374c785"",
                    ""path"": ""<Keyboard>/d"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""Move"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": true
                },
                {
                    ""name"": ""1D Axis"",
                    ""id"": ""4b24b4a5-fb3b-43c2-976b-b86e85b85769"",
                    ""path"": ""1DAxis"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""Move"",
                    ""isComposite"": true,
                    ""isPartOfComposite"": false
                },
                {
                    ""name"": ""negative"",
                    ""id"": ""9cb9dac0-682a-4506-9fe1-5b4babb8d223"",
                    ""path"": ""<Keyboard>/leftArrow"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""Move"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": true
                },
                {
                    ""name"": ""positive"",
                    ""id"": ""88894ec9-8c48-4f3b-95e1-188c61cc6a0c"",
                    ""path"": ""<Keyboard>/rightArrow"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""Move"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": true
                },
                {
                    ""name"": """",
                    ""id"": ""462293f5-d1aa-404d-b592-79f17192cf14"",
                    ""path"": ""<Keyboard>/z"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""Vampirism"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": false
                }
            ]
        }
    ],
    ""controlSchemes"": []
}");
        // Levels
        m_Levels = asset.FindActionMap("Levels", throwIfNotFound: true);
        m_Levels_Jump = m_Levels.FindAction("Jump", throwIfNotFound: true);
        m_Levels_Move = m_Levels.FindAction("Move", throwIfNotFound: true);
        m_Levels_Vampirism = m_Levels.FindAction("Vampirism", throwIfNotFound: true);
    }

    public void Dispose()
    {
        UnityEngine.Object.Destroy(asset);
    }

    public InputBinding? bindingMask
    {
        get => asset.bindingMask;
        set => asset.bindingMask = value;
    }

    public ReadOnlyArray<InputDevice>? devices
    {
        get => asset.devices;
        set => asset.devices = value;
    }

    public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes;

    public bool Contains(InputAction action)
    {
        return asset.Contains(action);
    }

    public IEnumerator<InputAction> GetEnumerator()
    {
        return asset.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }

    public void Enable()
    {
        asset.Enable();
    }

    public void Disable()
    {
        asset.Disable();
    }

    public IEnumerable<InputBinding> bindings => asset.bindings;

    public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
    {
        return asset.FindAction(actionNameOrId, throwIfNotFound);
    }

    public int FindBinding(InputBinding bindingMask, out InputAction action)
    {
        return asset.FindBinding(bindingMask, out action);
    }

    // Levels
    private readonly InputActionMap m_Levels;
    private List<ILevelsActions> m_LevelsActionsCallbackInterfaces = new List<ILevelsActions>();
    private readonly InputAction m_Levels_Jump;
    private readonly InputAction m_Levels_Move;
    private readonly InputAction m_Levels_Vampirism;
    public struct LevelsActions
    {
        private @PlayerInputActions m_Wrapper;
        public LevelsActions(@PlayerInputActions wrapper) { m_Wrapper = wrapper; }
        public InputAction @Jump => m_Wrapper.m_Levels_Jump;
        public InputAction @Move => m_Wrapper.m_Levels_Move;
        public InputAction @Vampirism => m_Wrapper.m_Levels_Vampirism;
        public InputActionMap Get() { return m_Wrapper.m_Levels; }
        public void Enable() { Get().Enable(); }
        public void Disable() { Get().Disable(); }
        public bool enabled => Get().enabled;
        public static implicit operator InputActionMap(LevelsActions set) { return set.Get(); }
        public void AddCallbacks(ILevelsActions instance)
        {
            if (instance == null || m_Wrapper.m_LevelsActionsCallbackInterfaces.Contains(instance)) return;
            m_Wrapper.m_LevelsActionsCallbackInterfaces.Add(instance);
            @Jump.started += instance.OnJump;
            @Jump.performed += instance.OnJump;
            @Jump.canceled += instance.OnJump;
            @Move.started += instance.OnMove;
            @Move.performed += instance.OnMove;
            @Move.canceled += instance.OnMove;
            @Vampirism.started += instance.OnVampirism;
            @Vampirism.performed += instance.OnVampirism;
            @Vampirism.canceled += instance.OnVampirism;
        }

        private void UnregisterCallbacks(ILevelsActions instance)
        {
            @Jump.started -= instance.OnJump;
            @Jump.performed -= instance.OnJump;
            @Jump.canceled -= instance.OnJump;
            @Move.started -= instance.OnMove;
            @Move.performed -= instance.OnMove;
            @Move.canceled -= instance.OnMove;
            @Vampirism.started -= instance.OnVampirism;
            @Vampirism.performed -= instance.OnVampirism;
            @Vampirism.canceled -= instance.OnVampirism;
        }

        public void RemoveCallbacks(ILevelsActions instance)
        {
            if (m_Wrapper.m_LevelsActionsCallbackInterfaces.Remove(instance))
                UnregisterCallbacks(instance);
        }

        public void SetCallbacks(ILevelsActions instance)
        {
            foreach (var item in m_Wrapper.m_LevelsActionsCallbackInterfaces)
                UnregisterCallbacks(item);
            m_Wrapper.m_LevelsActionsCallbackInterfaces.Clear();
            AddCallbacks(instance);
        }
    }
    public LevelsActions @Levels => new LevelsActions(this);
    public interface ILevelsActions
    {
        void OnJump(InputAction.CallbackContext context);
        void OnMove(InputAction.CallbackContext context);
        void OnVampirism(InputAction.CallbackContext context);
    }
}
